
/**
 *  @file
 *  @brief   SPC 集合
 *
 *  @author  yuanchenxi
 *  @date    2024.07.25
 *  @version  v1.0
 *  @par Copyright(c):  ShenGong  Simulation corporation
 */

#pragma once
#include <vector>

#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/SetBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/** @brief 将不同sid的MPC形成一个新的集合
 *
 */
struct DECLSPEC SPCADDData : public SetBase
{
    SG::DataStructure::Common::Id              m_domainId = 0;  ///< 载荷集编号
    std::vector<SG::DataStructure::Common::Id> m_subSets;       ///< 子集编号
};

/// @brief 判断两个SPCADData是否相等
/// @param a
/// @param b
/// @return
DECLSPEC bool operator== (const SPCADDData &a, const SPCADDData &b);

/// @brief 判断两个SPCADData是否不相等
/// @param SGDataA
/// @param SGDataB
/// @return
DECLSPEC bool operator< (const SPCADDData &SGDataA, const SPCADDData &SGDataB);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE